/**
 * @项目名称 longlonggo-sample
 * @文件名称 HelloMethodInterceptor.java  版本号：1.0
 * @创建日期 2018年9月29日 
 * @创建作者 me@longlonggo.com
 */
package cglib;

import java.lang.reflect.Method;

import net.sf.cglib.proxy.MethodInterceptor;
import net.sf.cglib.proxy.MethodProxy;

/**
 * 说明：
 * cglib动态代理代理类，实现MethodInterceptor接口，生成方法拦截器
 * @version 1.0
 * @author me@longlonggo.com
 *
 */
public class HelloMethodInterceptor implements MethodInterceptor {

    @Override
    public Object intercept(Object o, Method method, Object[] objects, MethodProxy methodProxy) throws Throwable {
        System.out.println("代理执行前逻辑：" + method.getName());
//        Object object = methodProxy.invoke(o, objects);//!注意不是invoke，是invokeSuper()
        Object object = methodProxy.invokeSuper(o, objects);//调用制定对象上的原始方法
        System.out.println("代理执行完逻辑：" + method.getName());
        return object;
    }

}
